<html>
<head><meta charset="utf-8"><title>current status of compare-mode polonius · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html">current status of compare-mode polonius</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="175658645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175658645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175658645">(Sep 13 2019 at 19:54)</a>:</h4>
<p>Also, <span class="user-mention" data-user-id="116113">@lqd</span>, what is the status of the work you were doing on compare-mode polonius ?</p>



<a name="175659169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659169">(Sep 13 2019 at 20:00)</a>:</h4>
<p>before going on vacation, the status was this: there was only one failing test in the UI suite, it was a stack overflow during fact generation, let me get my notes. (and there was one OOM in run-pass)</p>



<a name="175659266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659266">(Sep 13 2019 at 20:02)</a>:</h4>
<p>said <a href="https://hackmd.io/CjYB0fs4Q9CweyeTdKWyEg?view" target="_blank" title="https://hackmd.io/CjYB0fs4Q9CweyeTdKWyEg?view">notes</a></p>



<a name="175659278"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659278" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659278">(Sep 13 2019 at 20:02)</a>:</h4>
<p>however since then, run-pass was merged into the ui suite</p>



<a name="175659303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659303">(Sep 13 2019 at 20:02)</a>:</h4>
<p>(and more tests could have been added and not work I haven't checked recently and will do so soon)</p>



<a name="175659327"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659327" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659327">(Sep 13 2019 at 20:03)</a>:</h4>
<p>that made the 2-3 problematic case from the run-pass into the ui suite</p>



<a name="175659351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659351">(Sep 13 2019 at 20:03)</a>:</h4>
<p>one of which is the OOM (and a bit hard to investigate)</p>



<a name="175659444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659444">(Sep 13 2019 at 20:04)</a>:</h4>
<p>the other two were more "annoyances" than blockers per se, fact generation made them slower (which would surely be blockers if the compare-mode was actually ran on CI, once it works)</p>



<a name="175659526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659526">(Sep 13 2019 at 20:05)</a>:</h4>
<p>so a lot slower I guess</p>



<a name="175659535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659535">(Sep 13 2019 at 20:05)</a>:</h4>
<p>ok, thanks, that helps, I remember the OOM but forgot it was connected to that work</p>



<a name="175659537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659537">(Sep 13 2019 at 20:05)</a>:</h4>
<p>I have been investigating the OOM but didn't yet locate the source of so many universal regions and outlives relations</p>



<a name="175659558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659558">(Sep 13 2019 at 20:05)</a>:</h4>
<p>the MIR is huge, the graphviz files make dot crash, etc</p>



<a name="175659623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659623">(Sep 13 2019 at 20:06)</a>:</h4>
<p>it may indeed be related to consts/statics</p>



<a name="175659650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659650">(Sep 13 2019 at 20:06)</a>:</h4>
<p>the test is very macro heavy to do many float computations IIRC (but I still haven't looked at it unpretty expanded)</p>



<a name="175659701"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659701" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659701">(Sep 13 2019 at 20:07)</a>:</h4>
<p>but I had located the point where we materialize the 15GB in rustc</p>



<a name="175659934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175659934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175659934">(Sep 13 2019 at 20:10)</a>:</h4>
<p>and that point was <a href="https://github.com/rust-lang/rust/blob/8301de16dafc81a3b5d94aa0707ad83bdb56a599/src/librustc_mir/borrow_check/nll/type_check/mod.rs#L229-L233" target="_blank" title="https://github.com/rust-lang/rust/blob/8301de16dafc81a3b5d94aa0707ad83bdb56a599/src/librustc_mir/borrow_check/nll/type_check/mod.rs#L229-L233">here</a> and materialized 10948 x 136664 outlives constraints</p>



<a name="175660013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175660013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175660013">(Sep 13 2019 at 20:11)</a>:</h4>
<blockquote>
<p>so a lot slower I guess</p>
</blockquote>
<p>maybe not <em>a lot</em> per se, but slower, I'll get numbers; and generally refresh those results, as new failures must have crept through</p>



<a name="175660271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175660271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175660271">(Sep 13 2019 at 20:15)</a>:</h4>
<p>ah also, there was the other check I added, which found some polonius errors which were not necessarily reported as rustc errors; I have noted some cases I managed to catch in the other list we talked about in the "reboot" meeting describing most of Polonius's status to my knowledge, quick link: <a href="https://hackmd.io/wGwGGRCKStiWBq9voP4e2A" target="_blank" title="https://hackmd.io/wGwGGRCKStiWBq9voP4e2A">here</a> and some were related to statics (maybe all) so there may be some other fact generation issues around that I'll have to investigate more on this front as well</p>



<a name="175807422"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175807422" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175807422">(Sep 16 2019 at 12:34)</a>:</h4>
<p>33GB <span aria-label="joy" class="emoji emoji-1f602" role="img" title="joy">:joy:</span> </p>
<div class="codehilite"><pre><span></span>---- [ui (polonius)] ui/wrapping-int-combinations.rs stderr ----
memory allocation of 33550368768 bytes failed
</pre></div>



<a name="175831515"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175831515" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175831515">(Sep 16 2019 at 17:04)</a>:</h4>
<p>alright, I updated the <a href="https://hackmd.io/CjYB0fs4Q9CweyeTdKWyEg?view" target="_blank" title="https://hackmd.io/CjYB0fs4Q9CweyeTdKWyEg?view">write-up</a> to include the newest test failures (since the run-pass ui migration), TLDR: one new (worse) OOM (similar to the previous one it seems), the other failures are tests we can bless</p>



<a name="175933700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/175933700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#175933700">(Sep 17 2019 at 18:16)</a>:</h4>
<p>I've opened the PR "fixing" the other cases <a href="https://github.com/rust-lang/rust/pull/64554" target="_blank" title="https://github.com/rust-lang/rust/pull/64554">here</a></p>



<a name="176223604"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176223604" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176223604">(Sep 20 2019 at 19:29)</a>:</h4>
<p>(there's a new failure, a trivial one again, I'll fix it next week)</p>



<a name="176406871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176406871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176406871">(Sep 23 2019 at 20:33)</a>:</h4>
<p>("trivial", if we ignore the whole discussion about <code>'empty</code> cough)</p>



<a name="176407168"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407168" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407168">(Sep 23 2019 at 20:37)</a>:</h4>
<p>I'll try to get a PR up that removes most of the Polonius compare mode differences up this week. After that there's just the <code>Locations::All</code> OOM  issues.</p>



<a name="176407532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407532">(Sep 23 2019 at 20:41)</a>:</h4>
<p>the stack overflow generating facts on drop ?</p>



<a name="176407550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407550">(Sep 23 2019 at 20:41)</a>:</h4>
<p>That's fixed by the PR</p>



<a name="176407611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407611">(Sep 23 2019 at 20:42)</a>:</h4>
<p>great!</p>



<a name="176407637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407637">(Sep 23 2019 at 20:42)</a>:</h4>
<p>did you ignore-compare-mode-polonius the new hrtb from where clause error ?</p>



<a name="176407669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407669">(Sep 23 2019 at 20:43)</a>:</h4>
<p>Currently, but I'll probably change to fixing the actual problem.</p>



<a name="176407769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407769">(Sep 23 2019 at 20:44)</a>:</h4>
<p>wow, thanks Mattew that's likely going to be a bit more complicated :)</p>



<a name="176407925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176407925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176407925">(Sep 23 2019 at 20:46)</a>:</h4>
<p>for the OOMs I think we've gone back and forth about this, IIRC at one point Location::All could be seen as a temporary hack, but still, correct in spirit</p>



<a name="176408106"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408106" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408106">(Sep 23 2019 at 20:48)</a>:</h4>
<p>it generates a whole lot of <code>outlives</code> constraint even when not OOM-ing, like 3000+ for this "simple looking" <a href="https://github.com/lqd/borrow-check/blob/variant_prototype2/inputs/polonius-imprecision/polonius-imprecision.rs#L24-L36" target="_blank" title="https://github.com/lqd/borrow-check/blob/variant_prototype2/inputs/polonius-imprecision/polonius-imprecision.rs#L24-L36">function</a></p>



<a name="176408277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408277">(Sep 23 2019 at 20:50)</a>:</h4>
<p>just changing representation could just move the problem in the datalog when materializing the subset TC (depending on the variant)</p>



<a name="176408297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408297">(Sep 23 2019 at 20:50)</a>:</h4>
<p>I attempted to remove the uses of <code>Location::All</code> that were causing the problem, but it resulted in a diagnostic regression (for normal NLL as well). I have a couple of ideas that would avoid this problem, but they're complicated enough that I don't really want to implement them until Polonius is more stable.</p>



<a name="176408309"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408309" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408309">(Sep 23 2019 at 20:50)</a>:</h4>
<p>but we could sidestep the issue with the equality-tracking work tho</p>



<a name="176408348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408348">(Sep 23 2019 at 20:51)</a>:</h4>
<p>yeah</p>



<a name="176408414"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408414" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408414">(Sep 23 2019 at 20:51)</a>:</h4>
<p>a tad unfortunate, but we can probably fix it correctly</p>



<a name="176408417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408417">(Sep 23 2019 at 20:51)</a>:</h4>
<blockquote>
<p>just changing representation could just move the problem in the datalog when materializing the subset TC (depending on the variant)</p>
</blockquote>
<p>In the future when we only do position dependent outlives on lifetimes where it matters this shouldn't be a problem.</p>



<a name="176408663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408663">(Sep 23 2019 at 20:54)</a>:</h4>
<p>is  "position-dependent outlives" the more expected term for the equality-tracking variant we can't seem to name ?</p>



<a name="176408737"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408737" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408737">(Sep 23 2019 at 20:55)</a>:</h4>
<p>No, I mean the normal location-sensitive version or whatever it's called.</p>



<a name="176408748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408748">(Sep 23 2019 at 20:55)</a>:</h4>
<p>ah :)</p>



<a name="176408829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408829">(Sep 23 2019 at 20:56)</a>:</h4>
<p><code>Naive</code> or <code>DatafrogOpt</code></p>



<a name="176408963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408963">(Sep 23 2019 at 20:57)</a>:</h4>
<p><code>DatafrogOpt</code></p>



<a name="176408967"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176408967" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176408967">(Sep 23 2019 at 20:57)</a>:</h4>
<p>ATM it feels all variants kinda depend on Location::All but I don't know to what extent</p>



<a name="176409046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176409046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176409046">(Sep 23 2019 at 20:58)</a>:</h4>
<p>equality-tracking only partially</p>



<a name="176409123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176409123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176409123">(Sep 23 2019 at 20:59)</a>:</h4>
<p>Location-insensitive doesn't</p>



<a name="176409199"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176409199" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176409199">(Sep 23 2019 at 21:00)</a>:</h4>
<p>true - but you know what I mean, it's not meant to compute the complete results</p>



<a name="176409203"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176409203" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176409203">(Sep 23 2019 at 21:00)</a>:</h4>
<p>we could be unifying them earlier, and only produce "these lifetimes/regions/origins are equal" tuples, no need to materialize the outlives constraints at every point</p>



<a name="176409263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/current%20status%20of%20compare-mode%20polonius/near/176409263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/current.20status.20of.20compare-mode.20polonius.html#176409263">(Sep 23 2019 at 21:01)</a>:</h4>
<p>I <em>think</em></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>